<?php defined('SYSPATH') or die('No direct script access.');

class Model_Email_Forum extends Model {
	
	public static function send_topic_to_admin(Model_Forum_Topic $topic)
	{
		$replacement = array(
			'{author.nickname}' => Model_User::nickname($topic->user),
			'{topic.name}' => $topic->name,
			'{message}' => BBCode::toXHTML($topic->messages->order_by('date', 'DESC')->limit(1)->find()->text),
			'{link.frontend.message}' => URL::site(Route::get('frontend_forum')->uri(array(
				'action' => 'topic',
				'id' => $topic->id,
			)), TRUE),
			'{link.backend.topic}' => URL::site(Route::get('backend')->uri(array(
				'controller' => 'forum',
				'action' => 'topic_edit',
				'par1' => $topic->id,
			)), TRUE),
			'{link.backend.message}' => URL::site(Route::get('backend')->uri(array(
				'controller' => 'forum',
				'action' => 'message_edit',
				'par1' => $topic->messages->order_by('date', 'DESC')->limit(1)->find()->id,
			)), TRUE),
			'{url_base}' => URL::base(TRUE),
		);
		
		$body = "
			<p>Тема: {topic.name}</p>
			<p>Отправитель: {author.nickname}</p>
			<p>----------</p>
			<div>{message}</div>
			<p>----------</p>
			<p>
				Frontend:<br />
				<a href=\"{link.frontend.message}\">{link.frontend.message}</a>
			</p>
			<p>
				Backend:<br />
				<a href=\"{link.backend.topic}\">{link.backend.topic}</a><br />
				<a href=\"{link.backend.message}\">{link.backend.message}</a>
			</p>
			<p>
				-- <br />
				Данное сообщение является автоматическим уведомлением. <br />
				С уважением, администратор {url_base} <br />
				<a href=\"{url_base}\">{url_base}</a>
			</p>
		";
		$body = str_replace(array_keys($replacement), array_values($replacement), $body);
		
		$msgmail = Swift_Message::newInstance()
			->setSubject('Новая тема на форуме '.$_SERVER['SERVER_NAME'])
			->setFrom(Kohana::$config->load('email.from'))
			->setTo(Kohana::$config->load('email.admin'))
			->setBody($body, 'text/html');
		
		Model_Reg::get('mailer')->send($msgmail);
	}
	
	public static function send_message_to_admin(Model_Forum_Message $message)
	{
		$replacement = array(
			'{author.nickname}' => Model_User::nickname($message->user),
			'{topic.name}' => $message->topic->name,
			'{message}' => BBCode::toXHTML($message->text),
			'{link.frontend.message}' => URL::site(Route::get('frontend_forum')->uri(array(
				'action' => 'goto',
				'id' => $message->id,
			)), TRUE),
			'{link.backend.message}' => URL::site(Route::get('backend')->uri(array(
				'controller' => 'forum',
				'action' => 'message_edit',
				'par1' => $message->id,
			)), TRUE),
			'{url_base}' => URL::base(TRUE),
		);
		
		$body = "
			<p>Тема: {topic.name}</p>
			<p>Отправитель: {author.nickname}</p>
			<p>----------</p>
			<div>{message}</div>
			<p>----------</p>
			<p>
				Frontend:<br />
				<a href=\"{link.frontend.message}\">{link.frontend.message}</a>
			</p>
			<p>
				Backend:<br />
				<a href=\"{link.backend.message}\">{link.backend.message}</a>
			</p>
			<p>
				-- <br />
				Данное сообщение является автоматическим уведомлением. <br />
				С уважением, администратор {url_base} <br />
				<a href=\"{url_base}\">{url_base}</a>
			</p>
		";
		$body = str_replace(array_keys($replacement), array_values($replacement), $body);
		
		$msgmail = Swift_Message::newInstance()
			->setSubject('Новое сообщение на форуме '.$_SERVER['SERVER_NAME'])
			->setFrom(Kohana::$config->load('email.from'))
			->setTo(Kohana::$config->load('email.admin'))
			->setBody($body, 'text/html');

		Model_Reg::get('mailer')->send($msgmail);
	}
	
	public static function send_message_to_subscriber(Model_Forum_Message $message, Model_User $user)
	{
		$replacement = array(
			'{nickname}' => Model_User::nickname($user),
			'{author.nickname}' => Model_User::nickname($message->user),
			'{topic.name}' => $message->topic->name,
			'{message}' => BBCode::toXHTML($message->text),
			'{link}' => URL::site(Route::get('frontend_forum')->uri(array(
				'action' => 'goto',
				'goto' => 'message',
				'id' => $message->id,
			)), TRUE),
			'{url_base}' => URL::base(TRUE),
		);
		
		$body = "
			<p>Здравствуйте, {nickname}.</p>
			<p>Тема: {topic.name}</p>
			<p>Отправитель: {author.nickname}</p>
			<p>----------</p>
			<div>{message}</div>
			<p>----------</p>
			<p><a href=\"{link}\">{link}</a></p>
			<p>
				-- <br />
				Данное сообщение является автоматическим уведомлением. <br />
				С уважением, администратор {url_base} <br />
				<a href=\"{url_base}\">{url_base}</a>
			</p>
		";
		$body = str_replace(array_keys($replacement), array_values($replacement), $body);
		
		$msgmail = Swift_Message::newInstance()
			->setSubject('Новое сообщение на форуме '.$_SERVER['SERVER_NAME'])
			->setFrom(Kohana::$config->load('email.from'))
			->setTo($user->email)
			->setBody($body, 'text/html');

		Model_Reg::get('mailer')->send($msgmail);
	}
	
}